A remote desktop system generally allows a user at a client device (i.e., a remote user) to view an information display or desktop of another user's device (i.e., a host user). The technology behind many of today's remote desktop systems consists of presenting a live feed of one user's information display or desktop to one or more other users' information display or desktop, and to allow the other users to interact with an application at the host user's device through a remote desktop window. Such systems are convenient and cost effective for allowing a remote user to, e.g., help a user at a host device with administration of the host user's device. For example, the remote desktop system can render the host user's information display on the remote user's display device as a remote desktop window, so that any interactions made by either the remote user or the host user is executed by the applications running on the host user's computer.
Remote desktop systems have also been used in net-meeting or presentation-like environments. In such environments, a user at a host device can present information about an application at the host device to remote users, while simultaneously restricting the remote users from interacting with the host application. Variations of such systems allow the host user to control which, if any, of the remote users can control and/or interact with the host application. Additionally, some remote desktop systems allow multiple remote users to connect with and share control of a host application.
However, to date, many remote desktop systems have focused on applications running only on the host user's device, and provide little in the area of collaboration. For example, where an application is running on a host user's device, any interaction made by a remote user through the remote desktop system will affect all of the other users viewing that host application. This is particularly unsatisfactory in applications such as web browsing, where, e.g., a host user may retrieve a web page, and when the host user has finished reading the web page, the host user will navigate to another page by selecting a hyperlink. Remote users, who may be viewing the same web page through a remote desktop window, may be reading slower or faster than the host user. Those remote users who finish reading will be required to wait for the host user, but might want to explore the content behind one of the hyperlinks on the page. However, if a client user remotely interacting with the host application selects a link (assuming the host user has granted them permission to interact with the host's web browser), then the host application will navigate to this new link and the host user will be interrupted, as will any other remote readers who have not finished reading the content. Alternatively, if the host user decides not to share control of their browser application, the host user might be asked to copy the uniform resource locator (URL), and send it (e.g., via email or instant message) to the remote users, so that the requesting remote user can perform their own simultaneous browsing while keeping the shared desktop window open. This will similarly interrupt the host user, and delay things for all of the users. These are the general areas that embodiments of the invention are intended to address.